<html>
<head>
<title>
A Tour of NTL: Introduction </title>
</head>


<center>
<img src="arrow1.gif" alt="[Previous]" align=bottom>
 <a href="tour.html"><img src="arrow2.gif" alt="[Up]" align=bottom></a> 
<a href="tour-examples.html"> <img src="arrow3.gif" alt="[Next]" align=bottom></a>
</center>


<h1>
<p align=center>
A Tour of NTL: Introduction
</p>
</h1>

<p> <hr> <p>


<p>
NTL is a high-performance, portable C++ library providing
data structures and algorithms 
for arbitrary length integers;
for vectors, matrices, and polynomials over the integers and over
finite fields; and for arbitrary precision floating point arithmetic.

<p>
NTL provides high quality implementations of state-of-the-art
algorithms for:

<ul>

<li>
arbitrary length integer arithmetic and arbitrary precision
floating point arithmetic;

<li> 
polynomial arithmetic over the integers and finite fields
including basic arithmetic, polynomial factorization, 
irreducibility testing, 
computation
of minimal polynomials, traces, norms, and more;

<li>
lattice basis reduction, including very robust and fast implementations
of Schnorr-Euchner, block Korkin-Zolotarev reduction,
and the new Schnorr-Horner pruning heuristic for
block Korkin-Zolotarev;

<li>
basic linear algebra over the integers, 
finite fields, and arbitrary precision
floating point numbers.

</ul>

<p>
NTL's polynomial arithmetic is one of the fastest available anywhere,
and has been used to set "world records" for polynomial factorization
and determining orders of elliptic curves.


<p>
NTL's lattice reduction code is also one of the best available anywhere,
in terms of both speed and robustness, and one of the few 
implementations of
block Korkin-Zolotarev reduction with the Schnorr-Horner pruning heuristic.
It has been used to "crack" several cryptosystems.


<p>
NTL can be easily installed in a matter of minutes 
on just about any platform,
including virtually any 32- or 64-bit machine running
any flavor of Unix,
Mac OS, 
or Windows.
NTL can be built in conjunction  with
<a href="tour-gmp.html">GMP (the GNU Multi-Precision library)</a>
for enhanced performance (this is the default on Unix and Mac OS).
NTL can also be built in conjunction with the 
<a href="tour-gf2x.html"><tt>gf2x</tt></a> library for faster
arithmetic of large degree polynomials over <i>GF(2)</i>.


<p>
NTL provides a clean and consistent interface to
a large variety of classes representing mathematical objects.
It provides a good environment for easily 
and quickly implementing new
number-theoretic algorithms, <em>without sacrificing performance</em>.

<p>
NTL is written and maintained by 
<a href="http://www.shoup.net">Victor Shoup</a>
with some contributions made by others
(see <a href="tour-ack.html">Acknowledgements</a>).

<p>

<h2>
Lincensing: LGPLv2.1+
</p>
</h2>
<p>
NTL is <i>free software</i>, 
and may be used according to 
the terms of the GNU Lesser General Public License version 2.1 or later.
<p>
<a href="copying.txt">[the precise licensing information of NTL]</a>
<p>
<a href="https://www.gnu.org/licenses/licenses.html">[more information
about GNU Licenses]</a>

<p>

<center>
<img src="arrow1.gif" alt="[Previous]" align=bottom>
 <a href="tour.html"><img src="arrow2.gif" alt="[Up]" align=bottom></a> 
<a href="tour-examples.html"> <img src="arrow3.gif" alt="[Next]" align=bottom></a>
</center>

</body>
</html>
